/**************************************************************************************************
**                                                                                               **
**  文件名称:  osi_irq_drv.h                                                                     **
**  版权所有:  CopyRight @ Xiamen Yaxon NetWork CO.LTD. 2017                                     **
**  文件描述:  用户自定义中断函数                                                                **
**  ===========================================================================================  **
**  创建信息:  | 2017-3-20 | LEON | 创建本模块                                                   **
**  ===========================================================================================  **
**  修改信息:  单击此处添加....                                                                  **
**************************************************************************************************/
#ifndef OSI_IRQ_DRV_H
#define OSI_IRQ_DRV_H

/*************************************************************************************************/
/*                           模块宏定义                                                          */
/*************************************************************************************************/
#define IRQ_ID_MAX           (16 + 82)                                         /* 定义中断向量个数 */

#define IRQ_PRIOTITY_0       0                                                 /* 中断优先级定义 */
#define IRQ_PRIOTITY_1       1
#define IRQ_PRIOTITY_2       2
#define IRQ_PRIOTITY_3       3

/*************************************************************************************************/
/*                           用户中断优先级枚举                                                  */
/*************************************************************************************************/
#define IRQ_PRIOTITY_SYSTICK 0, IRQ_PRIOTITY_3
#define IRQ_PRIOTITY_TXDMA   0, IRQ_PRIOTITY_2
#define IRQ_PRIOTITY_RXDMA   0, IRQ_PRIOTITY_2
#define IRQ_PRIOTITY_UART    0, IRQ_PRIOTITY_2
#define IRQ_PRIOTITY_EXTI    0, IRQ_PRIOTITY_1
#define IRQ_PRIOTITY_TIMER   0, IRQ_PRIOTITY_2
#define IRQ_PRIOTITY_CAN     0, IRQ_PRIOTITY_3

typedef void(* IRQ_SERVICE_FUNC)(void) __irq;

void IRQ_InstallHandler(INT32S irqid, IRQ_SERVICE_FUNC handle);
void IRQ_ConfigPriority(INT32S irqid, INT32U pree_pr, INT32U sub_pr);
void IRQ_ConfigEnable(INT32S irqid, BOOLEAN enable);

#endif


